/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bs.Beans;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Bone
 */
@Entity
@Table(name = "nfe_cabecalho")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "NfeCabecalho.findAll", query = "SELECT n FROM NfeCabecalho n")})
public class NfeCabecalho implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(nullable = false)
    private Integer id;
    @Column(name = "CODIGO_NUMERICO", length = 8)
    private String codigoNumerico;
    @Column(name = "NATUREZA_OPERACAO", length = 60)
    private String naturezaOperacao;
    @Column(name = "INDICADOR_FORMA_PAGAMENTO")
    private Character indicadorFormaPagamento;
    @Column(name = "CODIGO_MODELO", length = 2)
    private String codigoModelo;
    @Column(length = 3)
    private String serie;
    @Column(length = 9)
    private String numero;
    @Column(name = "DATA_EMISSAO")
    @Temporal(TemporalType.DATE)
    private Date dataEmissao;
    @Column(name = "DATA_ENTRADA_SAIDA")
    @Temporal(TemporalType.DATE)
    private Date dataEntradaSaida;
    @Column(name = "HORA_ENTRADA_SAIDA", length = 8)
    private String horaEntradaSaida;
    @Column(name = "TIPO_OPERACAO")
    private Character tipoOperacao;
    @Column(name = "CODIGO_MUNICIPIO")
    private Integer codigoMunicipio;
    @Column(name = "FORMATO_IMPRESSAO_DANFE")
    private Character formatoImpressaoDanfe;
    @Column(name = "TIPO_EMISSAO")
    private Character tipoEmissao;
    @Column(name = "CHAVE_ACESSO", length = 44)
    private String chaveAcesso;
    @Column(name = "DIGITO_CHAVE_ACESSO")
    private Character digitoChaveAcesso;
    private Character ambiente;
    @Column(name = "FINALIDADE_EMISSAO")
    private Character finalidadeEmissao;
    @Column(name = "PROCESSO_EMISSAO")
    private Character processoEmissao;
    @Column(name = "VERSAO_PROCESSO_EMISSAO")
    private Integer versaoProcessoEmissao;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "BASE_CALCULO_ICMS", precision = 18, scale = 6)
    private BigDecimal baseCalculoIcms;
    @Column(name = "VALOR_ICMS", precision = 18, scale = 6)
    private BigDecimal valorIcms;
    @Column(name = "BASE_CALCULO_ICMS_ST", precision = 18, scale = 6)
    private BigDecimal baseCalculoIcmsSt;
    @Column(name = "VALOR_ICMS_ST", precision = 18, scale = 6)
    private BigDecimal valorIcmsSt;
    @Column(name = "VALOR_TOTAL_PRODUTOS", precision = 18, scale = 6)
    private BigDecimal valorTotalProdutos;
    @Column(name = "VALOR_FRETE", precision = 18, scale = 6)
    private BigDecimal valorFrete;
    @Column(name = "VALOR_SEGURO", precision = 18, scale = 6)
    private BigDecimal valorSeguro;
    @Column(name = "VALOR_DESCONTO", precision = 18, scale = 6)
    private BigDecimal valorDesconto;
    @Column(name = "VALOR_IMPOSTO_IMPORTACAO", precision = 18, scale = 6)
    private BigDecimal valorImpostoImportacao;
    @Column(name = "VALOR_IPI", precision = 18, scale = 6)
    private BigDecimal valorIpi;
    @Column(name = "VALOR_PIS", precision = 18, scale = 6)
    private BigDecimal valorPis;
    @Column(name = "VALOR_COFINS", precision = 18, scale = 6)
    private BigDecimal valorCofins;
    @Column(name = "VALOR_DESPESAS_ACESSORIAS", precision = 18, scale = 6)
    private BigDecimal valorDespesasAcessorias;
    @Column(name = "VALOR_TOTAL", precision = 18, scale = 6)
    private BigDecimal valorTotal;
    @Column(name = "VALOR_SERVICOS", precision = 18, scale = 6)
    private BigDecimal valorServicos;
    @Column(name = "BASE_CALCULO_ISSQN", precision = 18, scale = 6)
    private BigDecimal baseCalculoIssqn;
    @Column(name = "VALOR_ISSQN", precision = 18, scale = 6)
    private BigDecimal valorIssqn;
    @Column(name = "VALOR_PIS_ISSQN", precision = 18, scale = 6)
    private BigDecimal valorPisIssqn;
    @Column(name = "VALOR_COFINS_ISSQN", precision = 18, scale = 6)
    private BigDecimal valorCofinsIssqn;
    @Column(name = "VALOR_RETIDO_PIS", precision = 18, scale = 6)
    private BigDecimal valorRetidoPis;
    @Column(name = "VALOR_RETIDO_COFINS", precision = 18, scale = 6)
    private BigDecimal valorRetidoCofins;
    @Column(name = "VALOR_RETIDO_CSLL", precision = 18, scale = 6)
    private BigDecimal valorRetidoCsll;
    @Column(name = "BASE_CALCULO_IRRF", precision = 18, scale = 6)
    private BigDecimal baseCalculoIrrf;
    @Column(name = "VALOR_RETIDO_IRRF", precision = 18, scale = 6)
    private BigDecimal valorRetidoIrrf;
    @Column(name = "BASE_CALCULO_PREVIDENCIA", precision = 18, scale = 6)
    private BigDecimal baseCalculoPrevidencia;
    @Column(name = "VALOR_RETIDO_PREVIDENCIA", precision = 18, scale = 6)
    private BigDecimal valorRetidoPrevidencia;
    @Column(name = "UF_EMBARQUE", length = 2)
    private String ufEmbarque;
    @Column(name = "LOCAL_EMBARQUE", length = 60)
    private String localEmbarque;
    @Column(name = "NOTA_EMPENHO", length = 17)
    private String notaEmpenho;
    @Column(length = 60)
    private String pedido;
    @Column(name = "ISS_RETIDO")
    private Character issRetido;
    @Lob
    @Column(name = "INFORMACOES_ADD_FISCO", length = 65535)
    private String informacoesAddFisco;
    @Lob
    @Column(name = "INFORMACOES_ADD_CONTRIBUINTE", length = 65535)
    private String informacoesAddContribuinte;
    @Lob
    @Column(name = "INFORMACOES_COMPLEMENTARES", length = 65535)
    private String informacoesComplementares;
    @Column(name = "STATUS_NOTA")
    private Character statusNota;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeCana> nfeCanaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeDetalhe> nfeDetalheList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeCupomFiscal> nfeCupomFiscalList;
    @JoinColumn(name = "ID_VENDA_CABECALHO", referencedColumnName = "ID")
    @ManyToOne
    private VendaCabecalho idVendaCabecalho;
    @JoinColumn(name = "ID_EMPRESA", referencedColumnName = "ID")
    @ManyToOne
    private Empresa idEmpresa;
    @JoinColumn(name = "ID_FORNECEDOR", referencedColumnName = "ID")
    @ManyToOne
    private Fornecedor idFornecedor;
    @JoinColumn(name = "ID_CLIENTE", referencedColumnName = "ID")
    @ManyToOne
    private Cliente idCliente;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeTransporte> nfeTransporteList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeEmitente> nfeEmitenteList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeReferenciada> nfeReferenciadaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeLocalEntrega> nfeLocalEntregaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeLocalRetirada> nfeLocalRetiradaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeFatura> nfeFaturaList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idNfeCabecalho")
    private List<NfeDestinatario> nfeDestinatarioList;

    public NfeCabecalho() {
    }

    public NfeCabecalho(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCodigoNumerico() {
        return codigoNumerico;
    }

    public void setCodigoNumerico(String codigoNumerico) {
        this.codigoNumerico = codigoNumerico;
    }

    public String getNaturezaOperacao() {
        return naturezaOperacao;
    }

    public void setNaturezaOperacao(String naturezaOperacao) {
        this.naturezaOperacao = naturezaOperacao;
    }

    public Character getIndicadorFormaPagamento() {
        return indicadorFormaPagamento;
    }

    public void setIndicadorFormaPagamento(Character indicadorFormaPagamento) {
        this.indicadorFormaPagamento = indicadorFormaPagamento;
    }

    public String getCodigoModelo() {
        return codigoModelo;
    }

    public void setCodigoModelo(String codigoModelo) {
        this.codigoModelo = codigoModelo;
    }

    public String getSerie() {
        return serie;
    }

    public void setSerie(String serie) {
        this.serie = serie;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public Date getDataEmissao() {
        return dataEmissao;
    }

    public void setDataEmissao(Date dataEmissao) {
        this.dataEmissao = dataEmissao;
    }

    public Date getDataEntradaSaida() {
        return dataEntradaSaida;
    }

    public void setDataEntradaSaida(Date dataEntradaSaida) {
        this.dataEntradaSaida = dataEntradaSaida;
    }

    public String getHoraEntradaSaida() {
        return horaEntradaSaida;
    }

    public void setHoraEntradaSaida(String horaEntradaSaida) {
        this.horaEntradaSaida = horaEntradaSaida;
    }

    public Character getTipoOperacao() {
        return tipoOperacao;
    }

    public void setTipoOperacao(Character tipoOperacao) {
        this.tipoOperacao = tipoOperacao;
    }

    public Integer getCodigoMunicipio() {
        return codigoMunicipio;
    }

    public void setCodigoMunicipio(Integer codigoMunicipio) {
        this.codigoMunicipio = codigoMunicipio;
    }

    public Character getFormatoImpressaoDanfe() {
        return formatoImpressaoDanfe;
    }

    public void setFormatoImpressaoDanfe(Character formatoImpressaoDanfe) {
        this.formatoImpressaoDanfe = formatoImpressaoDanfe;
    }

    public Character getTipoEmissao() {
        return tipoEmissao;
    }

    public void setTipoEmissao(Character tipoEmissao) {
        this.tipoEmissao = tipoEmissao;
    }

    public String getChaveAcesso() {
        return chaveAcesso;
    }

    public void setChaveAcesso(String chaveAcesso) {
        this.chaveAcesso = chaveAcesso;
    }

    public Character getDigitoChaveAcesso() {
        return digitoChaveAcesso;
    }

    public void setDigitoChaveAcesso(Character digitoChaveAcesso) {
        this.digitoChaveAcesso = digitoChaveAcesso;
    }

    public Character getAmbiente() {
        return ambiente;
    }

    public void setAmbiente(Character ambiente) {
        this.ambiente = ambiente;
    }

    public Character getFinalidadeEmissao() {
        return finalidadeEmissao;
    }

    public void setFinalidadeEmissao(Character finalidadeEmissao) {
        this.finalidadeEmissao = finalidadeEmissao;
    }

    public Character getProcessoEmissao() {
        return processoEmissao;
    }

    public void setProcessoEmissao(Character processoEmissao) {
        this.processoEmissao = processoEmissao;
    }

    public Integer getVersaoProcessoEmissao() {
        return versaoProcessoEmissao;
    }

    public void setVersaoProcessoEmissao(Integer versaoProcessoEmissao) {
        this.versaoProcessoEmissao = versaoProcessoEmissao;
    }

    public BigDecimal getBaseCalculoIcms() {
        return baseCalculoIcms;
    }

    public void setBaseCalculoIcms(BigDecimal baseCalculoIcms) {
        this.baseCalculoIcms = baseCalculoIcms;
    }

    public BigDecimal getValorIcms() {
        return valorIcms;
    }

    public void setValorIcms(BigDecimal valorIcms) {
        this.valorIcms = valorIcms;
    }

    public BigDecimal getBaseCalculoIcmsSt() {
        return baseCalculoIcmsSt;
    }

    public void setBaseCalculoIcmsSt(BigDecimal baseCalculoIcmsSt) {
        this.baseCalculoIcmsSt = baseCalculoIcmsSt;
    }

    public BigDecimal getValorIcmsSt() {
        return valorIcmsSt;
    }

    public void setValorIcmsSt(BigDecimal valorIcmsSt) {
        this.valorIcmsSt = valorIcmsSt;
    }

    public BigDecimal getValorTotalProdutos() {
        return valorTotalProdutos;
    }

    public void setValorTotalProdutos(BigDecimal valorTotalProdutos) {
        this.valorTotalProdutos = valorTotalProdutos;
    }

    public BigDecimal getValorFrete() {
        return valorFrete;
    }

    public void setValorFrete(BigDecimal valorFrete) {
        this.valorFrete = valorFrete;
    }

    public BigDecimal getValorSeguro() {
        return valorSeguro;
    }

    public void setValorSeguro(BigDecimal valorSeguro) {
        this.valorSeguro = valorSeguro;
    }

    public BigDecimal getValorDesconto() {
        return valorDesconto;
    }

    public void setValorDesconto(BigDecimal valorDesconto) {
        this.valorDesconto = valorDesconto;
    }

    public BigDecimal getValorImpostoImportacao() {
        return valorImpostoImportacao;
    }

    public void setValorImpostoImportacao(BigDecimal valorImpostoImportacao) {
        this.valorImpostoImportacao = valorImpostoImportacao;
    }

    public BigDecimal getValorIpi() {
        return valorIpi;
    }

    public void setValorIpi(BigDecimal valorIpi) {
        this.valorIpi = valorIpi;
    }

    public BigDecimal getValorPis() {
        return valorPis;
    }

    public void setValorPis(BigDecimal valorPis) {
        this.valorPis = valorPis;
    }

    public BigDecimal getValorCofins() {
        return valorCofins;
    }

    public void setValorCofins(BigDecimal valorCofins) {
        this.valorCofins = valorCofins;
    }

    public BigDecimal getValorDespesasAcessorias() {
        return valorDespesasAcessorias;
    }

    public void setValorDespesasAcessorias(BigDecimal valorDespesasAcessorias) {
        this.valorDespesasAcessorias = valorDespesasAcessorias;
    }

    public BigDecimal getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(BigDecimal valorTotal) {
        this.valorTotal = valorTotal;
    }

    public BigDecimal getValorServicos() {
        return valorServicos;
    }

    public void setValorServicos(BigDecimal valorServicos) {
        this.valorServicos = valorServicos;
    }

    public BigDecimal getBaseCalculoIssqn() {
        return baseCalculoIssqn;
    }

    public void setBaseCalculoIssqn(BigDecimal baseCalculoIssqn) {
        this.baseCalculoIssqn = baseCalculoIssqn;
    }

    public BigDecimal getValorIssqn() {
        return valorIssqn;
    }

    public void setValorIssqn(BigDecimal valorIssqn) {
        this.valorIssqn = valorIssqn;
    }

    public BigDecimal getValorPisIssqn() {
        return valorPisIssqn;
    }

    public void setValorPisIssqn(BigDecimal valorPisIssqn) {
        this.valorPisIssqn = valorPisIssqn;
    }

    public BigDecimal getValorCofinsIssqn() {
        return valorCofinsIssqn;
    }

    public void setValorCofinsIssqn(BigDecimal valorCofinsIssqn) {
        this.valorCofinsIssqn = valorCofinsIssqn;
    }

    public BigDecimal getValorRetidoPis() {
        return valorRetidoPis;
    }

    public void setValorRetidoPis(BigDecimal valorRetidoPis) {
        this.valorRetidoPis = valorRetidoPis;
    }

    public BigDecimal getValorRetidoCofins() {
        return valorRetidoCofins;
    }

    public void setValorRetidoCofins(BigDecimal valorRetidoCofins) {
        this.valorRetidoCofins = valorRetidoCofins;
    }

    public BigDecimal getValorRetidoCsll() {
        return valorRetidoCsll;
    }

    public void setValorRetidoCsll(BigDecimal valorRetidoCsll) {
        this.valorRetidoCsll = valorRetidoCsll;
    }

    public BigDecimal getBaseCalculoIrrf() {
        return baseCalculoIrrf;
    }

    public void setBaseCalculoIrrf(BigDecimal baseCalculoIrrf) {
        this.baseCalculoIrrf = baseCalculoIrrf;
    }

    public BigDecimal getValorRetidoIrrf() {
        return valorRetidoIrrf;
    }

    public void setValorRetidoIrrf(BigDecimal valorRetidoIrrf) {
        this.valorRetidoIrrf = valorRetidoIrrf;
    }

    public BigDecimal getBaseCalculoPrevidencia() {
        return baseCalculoPrevidencia;
    }

    public void setBaseCalculoPrevidencia(BigDecimal baseCalculoPrevidencia) {
        this.baseCalculoPrevidencia = baseCalculoPrevidencia;
    }

    public BigDecimal getValorRetidoPrevidencia() {
        return valorRetidoPrevidencia;
    }

    public void setValorRetidoPrevidencia(BigDecimal valorRetidoPrevidencia) {
        this.valorRetidoPrevidencia = valorRetidoPrevidencia;
    }

    public String getUfEmbarque() {
        return ufEmbarque;
    }

    public void setUfEmbarque(String ufEmbarque) {
        this.ufEmbarque = ufEmbarque;
    }

    public String getLocalEmbarque() {
        return localEmbarque;
    }

    public void setLocalEmbarque(String localEmbarque) {
        this.localEmbarque = localEmbarque;
    }

    public String getNotaEmpenho() {
        return notaEmpenho;
    }

    public void setNotaEmpenho(String notaEmpenho) {
        this.notaEmpenho = notaEmpenho;
    }

    public String getPedido() {
        return pedido;
    }

    public void setPedido(String pedido) {
        this.pedido = pedido;
    }

    public Character getIssRetido() {
        return issRetido;
    }

    public void setIssRetido(Character issRetido) {
        this.issRetido = issRetido;
    }

    public String getInformacoesAddFisco() {
        return informacoesAddFisco;
    }

    public void setInformacoesAddFisco(String informacoesAddFisco) {
        this.informacoesAddFisco = informacoesAddFisco;
    }

    public String getInformacoesAddContribuinte() {
        return informacoesAddContribuinte;
    }

    public void setInformacoesAddContribuinte(String informacoesAddContribuinte) {
        this.informacoesAddContribuinte = informacoesAddContribuinte;
    }

    public String getInformacoesComplementares() {
        return informacoesComplementares;
    }

    public void setInformacoesComplementares(String informacoesComplementares) {
        this.informacoesComplementares = informacoesComplementares;
    }

    public Character getStatusNota() {
        return statusNota;
    }

    public void setStatusNota(Character statusNota) {
        this.statusNota = statusNota;
    }

    @XmlTransient
    public List<NfeCana> getNfeCanaList() {
        return nfeCanaList;
    }

    public void setNfeCanaList(List<NfeCana> nfeCanaList) {
        this.nfeCanaList = nfeCanaList;
    }

    @XmlTransient
    public List<NfeDetalhe> getNfeDetalheList() {
        return nfeDetalheList;
    }

    public void setNfeDetalheList(List<NfeDetalhe> nfeDetalheList) {
        this.nfeDetalheList = nfeDetalheList;
    }

    @XmlTransient
    public List<NfeCupomFiscal> getNfeCupomFiscalList() {
        return nfeCupomFiscalList;
    }

    public void setNfeCupomFiscalList(List<NfeCupomFiscal> nfeCupomFiscalList) {
        this.nfeCupomFiscalList = nfeCupomFiscalList;
    }

    public VendaCabecalho getIdVendaCabecalho() {
        return idVendaCabecalho;
    }

    public void setIdVendaCabecalho(VendaCabecalho idVendaCabecalho) {
        this.idVendaCabecalho = idVendaCabecalho;
    }

    public Empresa getIdEmpresa() {
        return idEmpresa;
    }

    public void setIdEmpresa(Empresa idEmpresa) {
        this.idEmpresa = idEmpresa;
    }

    public Fornecedor getIdFornecedor() {
        return idFornecedor;
    }

    public void setIdFornecedor(Fornecedor idFornecedor) {
        this.idFornecedor = idFornecedor;
    }

    public Cliente getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Cliente idCliente) {
        this.idCliente = idCliente;
    }

    @XmlTransient
    public List<NfeTransporte> getNfeTransporteList() {
        return nfeTransporteList;
    }

    public void setNfeTransporteList(List<NfeTransporte> nfeTransporteList) {
        this.nfeTransporteList = nfeTransporteList;
    }

    @XmlTransient
    public List<NfeEmitente> getNfeEmitenteList() {
        return nfeEmitenteList;
    }

    public void setNfeEmitenteList(List<NfeEmitente> nfeEmitenteList) {
        this.nfeEmitenteList = nfeEmitenteList;
    }

    @XmlTransient
    public List<NfeReferenciada> getNfeReferenciadaList() {
        return nfeReferenciadaList;
    }

    public void setNfeReferenciadaList(List<NfeReferenciada> nfeReferenciadaList) {
        this.nfeReferenciadaList = nfeReferenciadaList;
    }

    @XmlTransient
    public List<NfeLocalEntrega> getNfeLocalEntregaList() {
        return nfeLocalEntregaList;
    }

    public void setNfeLocalEntregaList(List<NfeLocalEntrega> nfeLocalEntregaList) {
        this.nfeLocalEntregaList = nfeLocalEntregaList;
    }

    @XmlTransient
    public List<NfeLocalRetirada> getNfeLocalRetiradaList() {
        return nfeLocalRetiradaList;
    }

    public void setNfeLocalRetiradaList(List<NfeLocalRetirada> nfeLocalRetiradaList) {
        this.nfeLocalRetiradaList = nfeLocalRetiradaList;
    }

    @XmlTransient
    public List<NfeFatura> getNfeFaturaList() {
        return nfeFaturaList;
    }

    public void setNfeFaturaList(List<NfeFatura> nfeFaturaList) {
        this.nfeFaturaList = nfeFaturaList;
    }

    @XmlTransient
    public List<NfeDestinatario> getNfeDestinatarioList() {
        return nfeDestinatarioList;
    }

    public void setNfeDestinatarioList(List<NfeDestinatario> nfeDestinatarioList) {
        this.nfeDestinatarioList = nfeDestinatarioList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof NfeCabecalho)) {
            return false;
        }
        NfeCabecalho other = (NfeCabecalho) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bs.Beans.NfeCabecalho[ id=" + id + " ]";
    }
    
}
